Pouziti IBRestoreService
Otázka od: Lebeda David
25. 11. 2002 14:22
Ahoj,
pouzivate nekdo ve sve aplikaci IBRestore service k obnove databaze ze zalohy?
Rec je o FireBirdu 1.0, IBX4.52.
Jde mi o to, jak to udelat bezpecne. Jelikoz uz jsem se setkal s tim, ze obnova
ze
zalohy se obcas nepovede, nechci delat obnovu primo do puvodniho gdb souboru,
aby v pripade techto problemu mel uzivatel alespon stav pred zalohou. Kdyz ale
zase udelam obnovu do vedlejsiho souboru, nevim, jak jej prekopirovat na
pozadovany nazev (nemam tam prava k souborum, coz je v poradku).
Takze vidim dve moznosti:
1) Riskovat obnovu do stvajiciho gdb souboru s rizikem, ze obnova selze a
uzivatel
nebude mit nic
2) Obnovu delat do jineho souboru a pak pozadat spravce serveru, aby mi ji
laskave
zkopiroval namisto puvodniho gdb souboru.
To, co by se mi libilo a co nevim, jestli jde, je, treba s pomoci komponenty
TIBDatabase nebo jine gdb soubor zkopirovat nebo prejmenovat, klidne v ramci
jednoho adresare.
Dik
David Lebeda
Odpovedá: Petr Palicka
25. 11. 2002 17:03
> 1) Riskovat obnovu do stvajiciho gdb souboru s rizikem, ze
> obnova selze a uzivatel nebude mit nic
no, vetsinou se data obnouvuji, protoze uz jsou nekde ztracena.
potom, kdyz se to nepovede, jedna se vetsinou o pokazenou zalohu a to
zpravidla vinou nespravneho skladovani (diskety, lokalni HDD, kde se
cela
aplikace provozuje). kdyz se to povede, zajasa nad dokonalosti pouzite
technologie
> 2) Obnovu delat do jineho souboru a pak pozadat spravce
> serveru, aby mi ji laskave zkopiroval namisto puvodniho gdb souboru.
to je IMHO zcestna myslenka. tak jak backup/restore funguje, funguje
dobre. jestlize dotycny neni schopen zalohu bezpecne skladovat, bude
si muset sehnat (zaplatit) nekoho, kdo mu s tim pomuze.
jinac ja osobne jsem do zalohy pridal moznost zabalit to zipem (TZIP) a
to jak na HDD tak na FDD a odeslani mejlem. jednodussi uz to user mit
asi nebude (leda doplnit vypaleni na CD-R(W).
nicmene je vhodne uzivatele upozornit, ze zalohu je opravdu nutne mit
bezpecne ulozenou. to znamena treba na ZIPce, nebo CDcku, nebo
prenosnem HDD, kterezto jsou pak skladovany oddelene od pocitace,
v zaruvzdornem trezoru a podobne. CDcka nesmi lezet na slunicku ani
na z venci prosvetlenem miste atd. muzes to potom pouzit jako alibi, az
ta zaloha nepujde obnovit . zni to huste, ale zivot je k datum tak
kruty...
peca
Odpovedá: Karel Rys
25. 11. 2002 17:54
Lebeda David dne 25 Nov 2002 v 13:32:
> Takze vidim dve moznosti:
>
> 1) Riskovat obnovu do stvajiciho gdb souboru s rizikem, ze obnova
> selze a uzivatel nebude mit nic
>
> 2) Obnovu delat do jineho souboru a pak pozadat spravce serveru, aby
> mi ji laskave zkopiroval namisto puvodniho gdb souboru.
Ahoj,
no, nevim, proc obnova selze; mozna bys mohl obnovu udelat (na prani uzivatele)
do nejake Temp
databaze, a kdyz by tahle obnova probehla dobre, udelat pak obnovu na ostro...
Nebo pred obnovou
jeste udelat zalohu te stavajici databaze... Pravda, znamena to zdrzeni, ovsem
jak casto se to
bude pouzivat?
Karel Rys
Odpovedá: Lebeda David
26. 11. 2002 8:48
> no, nevim, proc obnova selze; mozna bys mohl obnovu udelat (na prani
> uzivatele) do nejake Temp databaze, a kdyz by tahle obnova probehla
> dobre, udelat pak obnovu na ostro... Nebo pred obnovou jeste udelat
> zalohu te stavajici databaze... Pravda, znamena to zdrzeni, ovsem jak
> casto se to bude pouzivat?
Asi by bylo vhodne vysvetlit, k cemu to potrebuji. Tady jde o neco jineho.
Zalohovani
se provadi dvakrat denne automaticky mimo rizeni aplikace - o tom rec neni.
Ale zalohu a obnovu se doporucuje provadet obcas z cvicnych duvodu, aby se
databaze procistila. Mame databazi s nekolika sty tabulek. Jednou za cas tam
prijdu
se skriptem a strukturu databaze chci doplnit, popr. opravit chyby. Chci proto
predtim
databazi zazalohovat, a kdyz se pak neco nepovede (z ruznych duvodu), obnovenim
se vratit k puvodnimu stavu.
Bohuzel, pokud je gdb soubor "trochu naboreny", muze vzniknout problem. Napr.
obnova vyhucela na tom, ze v jedne tabulce v poli not null byly tri radky s
hodnotou
null. To uz jsem psal pred casem. Je uplne jedno, jak a proc to vzniklo,
podstatne je,
ze obnova ze zalohy kvuli tomu zkolabovala. Kdybych obnovoval rovnou do
puvodniho souboru, tak mam gbk soubor, ze ktereho nelze provest obnovu a kousek
noveho gdb souboru. Nejsem pak schopen se vratit ani do stavu platneho pred
tim,
nez jsem vubec prisel.
Provest obnovu nejprve cvicne do pomocneho souboru a v pripade uspechu teprve
do ostreho souboru by bylo hezke, kdyby ta obnova netrvala pul hodiny.
Reseni to ale asi nema, jelikoz v jinem threadu jsem se pred chvili docetl, ze
tabulku
(a asi ani databazi) prejmenovat proste nejde.
David Lebeda
Odpovedá: Karel Rys
26. 11. 2002 8:48
Lebeda David dne 26 Nov 2002 v 8:26:
> Reseni to ale asi nema, jelikoz v jinem threadu jsem se pred chvili
> docetl, ze tabulku (a asi ani databazi) prejmenovat proste nejde.
Ahoj,
jeste me napada, ze by sis mohl napsat service, ktera pobezi na stejnem PC jako
IB server. Udelal
bys obnovu do nejakeho temp souboru a zkusil se k nemu pripojit. Pokud by to
proslo, poslal bys te
Tve service pres TCP/IP zadost o zruseni puvodni databaze a prejmenovani te
temp na normalni.
Pokud k zadne z tech dvou databazi nebude v tu chvili nikdo pripojen, melo by
to nejspis fungovat,
i kdyz potvrdit by to mel spis Pavel Cisar Pres TCP/IP se k tomu serveru
urcite pripojis a
nepotrebujes tam zadne sdileni ani pristupova prava.
Karel Rys
Odpovedá: Pavel Cisar
26. 11. 2002 11:12
Haj hou!
On 26 Nov 2002 at 8:26, Lebeda David wrote:
> Reseni to ale asi nema, jelikoz v jinem threadu jsem se pred chvili docetl,
ze tabulku
> (a asi ani databazi) prejmenovat proste nejde.
A proc by neslo prejmenovat databazi ? Jediny problem by vznikl pri
pokusu prejmenovat kazdy soubor vicesouborove databaze (k tomu je
zapotrebi upravit obsah havicky databaze - je k tomu na IBP webu
utilita), ale prvni soubor jde prejmenovat bez problemu. Jde jen o to,
aby ji nikdo nemel otevrenou (ani server).
S pozdravem
Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase
Odpovedá: Lebeda David
26. 11. 2002 12:00
> A proc by neslo prejmenovat databazi ?
A jak? Mam na mysli prejmenovani bez toho, abych mel pristup k
souboru gdb, tj. s pomoci komponent IBX, nikoli pomoci prostredku
operacniho systemu. Pokud to jde a ja to jen prehledl, tak by mi to
moc pomohlo. Protoze k pocitaci s FB serverem nemam zadna
opravneni, neznam jmeno a heslo pro prihlaseni...
David Lebeda
Odpovedá: Petr Palicka
26. 11. 2002 13:32
> A jak? Mam na mysli prejmenovani bez toho, abych mel pristup k
> souboru gdb, tj. s pomoci komponent IBX.......
no, mozna by bylo snadnejsi udelat obnoveni databaze, do jineho
souboru a potom proste pripojit TIBDatabase k tomuto novemu
souboru. muzes si ho ulozit treba do INI a priste se pripojit primo
na nej. takhle bys vystacil s rekneme dvema GDB pouzivanyma
stradeve. pokud by bylo potreba, aby se o prechodu na novou GDB
dozvedeli dalsi klienti, tak bych stvoril jednu pomocnou databazi,
kde by se toto nastavovalo dalo by se tam i ulozit, ze se bude
restorovat a klienti by se odpojily od te stare, aby se neco nezprasilo
a pripojily se az k te nove.
peca
Odpovedá: Radek KALA
26. 11. 2002 13:55
A neni jednodussi tu starou databazi smazat. Pak nehrozi, ze ji nekdo
omylem pouzije. Prikaz drop database se da provest bez pristupu k
tomu serveru normalne z klienta
> > A jak? Mam na mysli prejmenovani bez toho, abych mel pristup k
> > souboru gdb, tj. s pomoci komponent IBX.......
>
> no, mozna by bylo snadnejsi udelat obnoveni databaze, do jineho
> souboru a potom proste pripojit TIBDatabase k tomuto novemu
> souboru. muzes si ho ulozit treba do INI a priste se pripojit primo na
> nej. takhle bys vystacil s rekneme dvema GDB pouzivanyma stradeve.
> pokud by bylo potreba, aby se o prechodu na novou GDB dozvedeli dalsi
> klienti, tak bych stvoril jednu pomocnou databazi, kde by se toto
> nastavovalo dalo by se tam i ulozit, ze se bude restorovat a klienti
> by se odpojily od te stare, aby se neco nezprasilo a pripojily se az k
> te nove.
>
> peca
>
S pozdravem Radek KALA
BetaControl, s.r.o.
Cerneho 58/60, 635 00
tlf. : + 420 5 4622 3491
fax : + 420 5 4622 3470
GSM : + 420 603 85 75 15
Odpovedá: Lebeda David
26. 11. 2002 16:41
> A neni jednodussi tu starou databazi smazat. Pak nehrozi, ze ji nekdo
> omylem pouzije. Prikaz drop database se da provest bez pristupu k tomu
> serveru normalne z klienta
Metoda "obnovit do jine databaze" a tu pak pouzivat misto puvodni by asi byla
funkcni, ale presto bych ji povazoval az za nouzove reseni. Volani drop je pak
uz jen
perlicka na dortu. Jak se zda, nic jineho mi asi nezbyde. Cimz dekuji puvodnimu
navrhovateli (tusim peca) za zajimavy napad.
David Lebeda
Odpovedá: Richard Kejval
27. 11. 2002 8:56
> Asi by bylo vhodne vysvetlit, k cemu to potrebuji. Tady jde o neco jineho.
Zalohovani
> se provadi dvakrat denne automaticky mimo rizeni aplikace - o tom rec
neni.
>
> Ale zalohu a obnovu se doporucuje provadet obcas z cvicnych duvodu, aby se
> databaze procistila. Mame databazi s nekolika sty tabulek. Jednou za cas
tam prijdu
> se skriptem a strukturu databaze chci doplnit, popr. opravit chyby. Chci
proto predtim
> databazi zazalohovat, a kdyz se pak neco nepovede (z ruznych duvodu),
obnovenim
> se vratit k puvodnimu stavu.
>
> Bohuzel, pokud je gdb soubor "trochu naboreny", muze vzniknout problem.
Napr.
My to resime tak, ze mame na zalohovani udelany COM server, ktery bud
aktivujeme
z planovace nebo ho muzem vyvolat primo i ze vzdaleneho pocitace. Ten
zazalohuje do nejake
Temp.gbk, pak ho vyzkousime opetovne rozbalit zase do Temp.gdb a pokud to
projde, tak
to na zaver zazipujem a zkopirujem do zalohovaciho adresare.
No a pak si muzeme dovolit, rozbalit to primo do ostre databaze i kdyz to
tak nedelame.
Kdyby obnova neprobehla korektne, zmineny zip soubor se nevytvori a musi se
to resit.
Na proste procisteni dat ti muze stacit i sweep.
S pozdravem
ing. Richard Kejval
IC Software s.r.o
Mobil: +420602477679
Odpovedá: Roland Turcan
26. 11. 2002 11:16
<<< 26. 11. 2002 9:04 - Lebeda David "david.lebeda@comarr.cz" >>>
LD> Bohuzel, pokud je gdb soubor "trochu naboreny", muze vzniknout problem.
Napr.
LD> obnova vyhucela na tom, ze v jedne tabulce v poli not null byly tri radky s
hodnotou
LD> null. To uz jsem psal pred casem. Je uplne jedno, jak a proc to vzniklo,
podstatne je,
LD> ze obnova ze zalohy kvuli tomu zkolabovala.
Moj nazor je ze ak si do tabulky robil Alter Table XXX add ColumnABC
... not null, tak si to hned mal aj naplnit niecim, lebo iste vies, ze
IB/FB nekontroluje naplnenie not null poloziek, lebo v pridavani
stlpca nie je mozne zadat nieco ako alter table XXX add ColumnsABC
smallint not null (value=0); Musis to urobit na dva kroky, ale nesmies
na to zabudnut. A tento problem by si nemal.
--
Best regards, TRoland
http://www.rotursoft.sk